{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Numpy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 深层拷贝和浅层拷贝\n",
    "* 数组展开和合并\n",
    "* String操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 深层拷贝和浅层拷贝"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "\n",
    "\n",
    "Image(filename='copy.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View - 浅层拷贝"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4],\n",
       "       [5, 6]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1=np.array([[1,2],[3,4],[5,6]])\n",
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2=df1[:-1,:].view()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1926872999936"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "id(df1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1926872976640"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "id(df2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 5]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2[-1,-1]=5\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 5],\n",
       "       [5, 6]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Copy - 深层拷贝"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4],\n",
       "       [5, 6]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1=np.array([[1,2],[3,4],[5,6]])\n",
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4]])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2=df1[:-1,:].copy()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1926873015280, 1926873017040)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "id(df1),id(df2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 5]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2[-1,-1]=5\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4],\n",
       "       [5, 6]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数组展开和合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1,   4,   9],\n",
       "       [100, 200, 300]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a=np.array([[1,4,9],[100,200,300]])\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 4, 9, 100, 200, 300]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(a.flat)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 4, 9, 100, 200, 300]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(a.flatten())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 100, 4, 200, 9, 300]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(a.flatten(order='F'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 4, 9, 100, 200, 300]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(a.ravel())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 100, 4, 200, 9, 300]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(a.ravel('F'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [1, 2, 3]])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b=np.array([[1,2,3],[1,2,3]])\n",
    "b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1,   4,   9],\n",
       "       [100, 200, 300]])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1,   4,   9,   1,   2,   3],\n",
       "       [100, 200, 300,   1,   2,   3]])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.hstack((a,b))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## String操作\n",
    "* 大小写\n",
    "* 分割\n",
    "* 合并\n",
    "* 寻找\n",
    "* 替换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 大小写"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['hello', 'python'], dtype='<U6')"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.lower(['HELLO','PYTHON'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['HELLO', 'PYTHON'], dtype='<U6')"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.upper(['hello','python'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 分割，合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(list(['Hello', 'python,', 'this', 'is', 'my', 'first', 'coding', 'class']),\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.split('Hello python, this is my first coding class')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(list(['Hello python', ' this is my first coding class']),\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.split('Hello python, this is my first coding class',sep=',')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(list(['Hello python, ', ' my first coding class']), dtype=object)"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.split('Hello python, this is my first coding class',sep='this is')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.char.split('Hello python, this is my first coding class',sep=',')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(list(['Hello', 'python,', 'this', 'is my first coding class']),\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.split('Hello python, this is my first coding class',maxsplit=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Hello python, this is my first coding class'"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "','.join(['Hello python', ' this is my first coding class'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array('h,e,l,l,o, ,p,y,t,h,o,n', dtype='<U23')"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.join(',','hello python')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['h,e,l,l,o', 'p,y,t,h,o,n'], dtype='<U11')"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.join(',',['hello','python'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 寻找和替换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(6)"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.find('hello python','python')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(-1)"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.find('hello python','python1')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(True)"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.startswith('hello python','hello')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(False)"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.endswith('hello python','onl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array('hello python', dtype='<U16')"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.strip('hello python....','.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array('hello python::::', dtype='<U16')"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.char.replace('hello python....','.',':')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 课后练习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  1,  2,  3],\n",
       "       [ 4,  5,  6,  7],\n",
       "       [ 8,  9, 10, 11]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a=np.arange(12).reshape(3,4)  \n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [],
   "source": [
    "深层拷贝a，命名为b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [],
   "source": [
    "把b的第三行，第四列的数据变成8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [],
   "source": [
    "把a按行展开"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "把a按列展开"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
